## API Report File for "@backstage/plugin-scaffolder-backend-module-gitlab"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts
import { BackendFeature } from '@backstage/backend-plugin-api';
import { Config } from '@backstage/config';
import { JsonObject } from '@backstage/types';
import { ScmIntegrationRegistry } from '@backstage/integration';
import { TemplateAction } from '@backstage/plugin-scaffolder-node';

// @public
export const createGitlabGroupEnsureExistsAction: (options: {
  integrations: ScmIntegrationRegistry;
}) => TemplateAction<
  {
    path: string[];
    repoUrl: string;
    token?: string | undefined;
  },
  {
    groupId?: number | undefined;
  }
>;

// @public
export const createGitlabIssueAction: (options: {
  integrations: ScmIntegrationRegistry;
}) => TemplateAction<
  {
    title: string;
    repoUrl: string;
    projectId: number;
    token?: string | undefined;
    assignees?: number[] | undefined;
    confidential?: boolean | undefined;
    description?: string | undefined;
    createdAt?: string | undefined;
    dueDate?: string | undefined;
    discussionToResolve?: string | undefined;
    epicId?: number | undefined;
    labels?: string | undefined;
    issueType?: IssueType | undefined;
    mergeRequestToResolveDiscussionsOf?: number | undefined;
    milestoneId?: number | undefined;
    weight?: number | undefined;
  },
  {
    issueUrl: string;
    issueId: number;
  }
>;

// @public
export const createGitlabProjectAccessTokenAction: (options: {
  integrations: ScmIntegrationRegistry;
}) => TemplateAction<
  {
    repoUrl: string;
    projectId: string | number;
    token?: string | undefined;
    name?: string | undefined;
    accessLevel?: number | undefined;
    scopes?: string[] | undefined;
    expiresAt?: string | undefined;
  },
  {
    access_token: string;
  }
>;

// @public
export const createGitlabProjectDeployTokenAction: (options: {
  integrations: ScmIntegrationRegistry;
}) => TemplateAction<
  {
    name: string;
    repoUrl: string;
    projectId: string | number;
    token?: string | undefined;
    username?: string | undefined;
    scopes?: string[] | undefined;
  },
  {
    user: string;
    deploy_token: string;
  }
>;

// @public
export const createGitlabProjectVariableAction: (options: {
  integrations: ScmIntegrationRegistry;
}) => TemplateAction<
  {
    key: string;
    value: string;
    repoUrl: string;
    projectId: string | number;
    variableType: string;
    token?: string | undefined;
    variableProtected?: boolean | undefined;
    masked?: boolean | undefined;
    raw?: boolean | undefined;
    environmentScope?: string | undefined;
  },
  JsonObject
>;

// @public
export const createGitlabRepoPushAction: (options: {
  integrations: ScmIntegrationRegistry;
}) => TemplateAction<
  {
    repoUrl: string;
    branchName: string;
    commitMessage: string;
    sourcePath?: string | undefined;
    targetPath?: string | undefined;
    token?: string | undefined;
    commitAction?: 'update' | 'delete' | 'create' | undefined;
  },
  JsonObject
>;

// @public
export function createPublishGitlabAction(options: {
  integrations: ScmIntegrationRegistry;
  config: Config;
}): TemplateAction<
  {
    repoUrl: string;
    defaultBranch?: string | undefined;
    repoVisibility?: 'internal' | 'private' | 'public' | undefined;
    sourcePath?: string | undefined;
    token?: string | undefined;
    gitCommitMessage?: string | undefined;
    gitAuthorName?: string | undefined;
    gitAuthorEmail?: string | undefined;
    setUserAsOwner?: boolean | undefined;
    topics?: string[] | undefined;
    settings?:
      | {
          path?: string | undefined;
          auto_devops_enabled?: boolean | undefined;
          ci_config_path?: string | undefined;
          description?: string | undefined;
          topics?: string[] | undefined;
          visibility?: 'internal' | 'private' | 'public' | undefined;
        }
      | undefined;
    branches?:
      | {
          name: string;
          protect?: boolean | undefined;
          create?: boolean | undefined;
          ref?: string | undefined;
        }[]
      | undefined;
    projectVariables?:
      | {
          key: string;
          value: string;
          description?: string | undefined;
          variable_type?: string | undefined;
          protected?: boolean | undefined;
          masked?: boolean | undefined;
          raw?: boolean | undefined;
          environment_scope?: string | undefined;
        }[]
      | undefined;
  },
  JsonObject
>;

// @public
export const createPublishGitlabMergeRequestAction: (options: {
  integrations: ScmIntegrationRegistry;
}) => TemplateAction<
  {
    repoUrl: string;
    title: string;
    description: string;
    branchName: string;
    targetBranchName?: string | undefined;
    sourcePath?: string | undefined;
    targetPath?: string | undefined;
    token?: string | undefined;
    commitAction?: 'update' | 'delete' | 'create' | undefined;
    projectid?: string | undefined;
    removeSourceBranch?: boolean | undefined;
    assignee?: string | undefined;
  },
  JsonObject
>;

// @public
const gitlabModule: () => BackendFeature;
export default gitlabModule;

// @public
export enum IssueType {
  // (undocumented)
  INCIDENT = 'incident',
  // (undocumented)
  ISSUE = 'issue',
  // (undocumented)
  TEST = 'test_case',
}
```
